import 'dart:collection';

import 'package:flutter_admin/api/odoo/dynamic_data_api.dart';
import 'package:flutter_admin/api/odoo/purchase_supplier_evaluation_odoo_api.dart';

import 'package:flutter_admin/models/odoo/purchase_supplier_evaluation.dart';

import 'package:flutter_admin/pages/common/cry/cry_all.dart';
import 'package:flutter_admin/pages/common/cry/model/response_body_api.dart';
import 'package:flutter_admin/pages/common/cry/utils/cry_utils.dart';
import 'package:flutter_admin/pages/common/cry/vo/select_option_vo.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_admin/pages/common/cry/cry_button.dart';
import 'package:flutter_admin/pages/common/keep_alive_wrapper.dart';

import 'package:flutter_admin/pages/common/years_date.dart';

import '../../../../generated/l10n.dart';
import 'evaluate.dart';

class EvaluateView extends StatefulWidget {
  EvaluateView(
      {Key? key, required this.purchaseSupplierEvaluation, required this.list})
      : super(key: key);
  final List list;
  final PurchaseSupplierEvaluation purchaseSupplierEvaluation;
  @override
  _EvaluateViewState createState() => _EvaluateViewState();
}

class _EvaluateViewState extends State<EvaluateView>
    with SingleTickerProviderStateMixin {
  // final GlobalKey<FormState> formKey = GlobalKey<FormState>();
  // List<SelectOptionVO> locationIdList = [];
  //
  // Map project = {};
  // List purchaselist = [];
  // List<SelectOptionVO> userIdLIst = [];

  late TabController _tabController;
  List tabs = [];

  @override
  void initState() {
    super.initState();
    widget.list.forEach((element) {
      tabs.add(element["dept_id"]);
    });
    _tabController = TabController(length: tabs.length, vsync: this);
  }

  @override
  void dispose() {
    // 释放资源
    _tabController.dispose();
    super.dispose();
  }

  _loadSelectVO() async {
    // if(widget.list.length == 0){
    //   ResponseBodyApi responseBodyApi = await DynamicDataApi.getModels(
    //       model: "purchase.evaluation.item",
    //       key: "project_id",
    //       val: project['id'],
    //   );
    //   if(responseBodyApi.success!){
    //     responseBodyApi.data.forEach((element) {
    //       element["actual_score"] = 0;
    //     });
    //     purchaselist = responseBodyApi.data;
    //   }
    // } else {
    //   purchaselist = widget.list;
    // }
    // setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("查看评价"),
        bottom: TabBar(
          controller: _tabController,
          tabs: widget.list.map((e) => Tab(text: e["dept_id"][1])).toList(),
        ),
      ),
      body: TabBarView(
        //构建
        controller: _tabController,
        children: widget.list.map((e) {
          return KeepAliveWrapper(
            child: Evaluate(
              purchaseSupplierEvaluation: widget.purchaseSupplierEvaluation,
              project: e,
              isView: true,
            ),
          );
        }).toList(),
      ),
    );
  }
  // @override
  // Widget build(BuildContext context) {
  //   (purchaselist);
  //   var rows = purchaselist.map((purchase) {
  //     var result = DataRow(cells: [
  //       DataCell(Text(purchase['assessment_content'] != false
  //           ? purchase['assessment_content']
  //           : "")),
  //       DataCell(Text(purchase['evaluation_criteria'] != false
  //           ? purchase['evaluation_criteria']
  //           : "")),
  //       DataCell(CryInput(
  //               width: 150,
  //               padding: 5,
  //               value: purchase['actual_details'] != false
  //                   ? purchase['actual_details']
  //                   : "",
  //               onSaved: (v) {
  //                 purchase['actual_details'] = v;
  //               },
  //             )
  //           ),
  //       DataCell(Text(purchase['weight_score'] != false
  //           ? purchase['weight_score'].toString()
  //           : "")),
  //       DataCell(CryInputNum(
  //               width: 150,
  //               padding: 5,
  //               value: purchase['actual_score'] != false
  //                   ? purchase['actual_score']
  //                   : 0,
  //               onSaved: (v) {
  //                 purchase['actual_score'] = v;
  //               },
  //               validator: (v) {
  //                 if(num.parse(v!) == 0){
  //                   return "得分不可以为0";
  //                 }
  //                 if(num.parse(v) <= 0){
  //                   return "得分不可以小于0";
  //                 }
  //                 if(num.parse(v)>purchase['weight_score']){
  //                   return "得分应小于权重分数";
  //                 }
  //                 return null;
  //               },
  //             )
  //           ),
  //     ]);
  //     return result;
  //   }).toList();
  //   var table = DataTable(
  //     columns: [
  //       DataColumn(
  //         label: Text('考核内容'),
  //         //onSort: (int columnIndex, bool ascending) => _sort('create_date'),
  //       ),
  //       DataColumn(
  //         label: Text('评估等级标准'),
  //         //onSort: (int columnIndex, bool ascending) => _sort('create_date'),
  //       ),
  //       DataColumn(
  //         label: Text('实际详情'),
  //         //onSort: (int columnIndex, bool ascending) => _sort('create_date'),
  //       ),
  //       DataColumn(
  //         label: Text('权重/100'),
  //         //onSort: (int columnIndex, bool ascending) => _sort('create_date'),
  //       ),
  //       DataColumn(
  //         label: Text('得分'),
  //         //onSort: (int columnIndex, bool ascending) => _sort('create_date'),
  //       ),
  //     ],
  //     rows: rows,
  //   );
  //   var form = Form(
  //     key: formKey,
  //     child: Column(
  //       children: [
  //         Wrap(
  //           children: <Widget>[
  //             CryInput(
  //               label: '考评项目',
  //               width: 320,
  //               value: project["evaluation_project"],
  //               enable: false,
  //               validator: (v) {
  //                 return v!.isEmpty ? S.of(context).required : null;
  //               },
  //             ),
  //             CryInput(
  //               label: '考评意见',
  //               width: 320,
  //               value: project['evaluation_opinions']!=false?project['evaluation_opinions'].toString():"",
  //               onSaved: (v){
  //                 project['evaluation_opinions'] = v;
  //               },
  //             ),
  //           ],
  //         ),
  //         SingleChildScrollView(
  //           scrollDirection: Axis.horizontal,
  //           child: table,
  //         ),
  //       ],
  //     )
  //   );
  //   var buttonBar = ButtonBar(
  //     alignment: MainAxisAlignment.center,
  //     children: <Widget>[
  //       CryButton(
  //               label: S.of(context).save,
  //               onPressed: () {
  //                 FormState form = formKey.currentState!;
  //                 form.save();
  //                 if (!form.validate()) {
  //                   return;
  //                 }
  //                 form.save();
  //                 List list = [];
  //                 if(widget.list.length == 0){
  //                   purchaselist.forEach((element) {
  //                     Map map = new HashMap();
  //                     map = {
  //                       'evaluation_id': int.parse(widget.purchaseSupplierEvaluation.id!),
  //                       'template_id': int.parse(widget.purchaseSupplierEvaluation.templateId!),
  //                       'project_id': project["id"],
  //                       'assessment_content': element['assessment_content'],
  //                       'evaluation_criteria': element['evaluation_criteria'],
  //                       'weight_score': element['weight_score'],
  //                       'actual_details': element['actual_details'],
  //                       'actual_score': element['actual_score'],
  //                     };
  //                     list.add(map);
  //                   });
  //                   PurchaseSupplierEvaluationOdooApi.batchSave(list)
  //                       .then((ResponseBodyApi res) {
  //                     if (!res.success!) {
  //                       CryUtils.message(res.message!);
  //                       return;
  //                     }
  //                     Navigator.pop(context, true);
  //                     CryUtils.message(S.of(context).saved);
  //                   });
  //                 }else{
  //                   purchaselist.forEach((element) {
  //                     Map map = new HashMap();
  //                     map = {
  //                       'id': element['id'],
  //                       'actual_details': element['actual_details'],
  //                       'score': element['actual_score'],
  //                       'opinions': project["evaluation_opinions"],
  //                     };
  //                     list.add(map);
  //                   });
  //                   PurchaseSupplierEvaluationOdooApi.batchUpdate(list)
  //                       .then((ResponseBodyApi res) {
  //                     if (!res.success!) {
  //                       CryUtils.message(res.message!);
  //                       return;
  //                     }
  //                     Navigator.pop(context, true);
  //                     CryUtils.message(S.of(context).saved);
  //                   });
  //                 }
  //
  //               },
  //               iconData: Icons.save,
  //             )
  //          ,
  //       CryButton(
  //         label: S.of(context).cancel,
  //         onPressed: () {
  //           Navigator.pop(context);
  //         },
  //         iconData: Icons.cancel,
  //       )
  //     ],
  //   );
  //   var result = Scaffold(
  //     appBar: AppBar(
  //       title: Text('供应商评价打分'),
  //     ),
  //     body: SingleChildScrollView(
  //       child: Column(
  //         children: [
  //           form,
  //
  //         ],
  //       ),
  //     ),
  //     bottomNavigationBar: buttonBar,
  //   );
  //   return SizedBox(
  //     width: 650,
  //     height: 650,
  //     child: result,
  //   );
  //   // return result;
  // }
}
